from bs4 import BeautifulSoup

f = open('Code_html/03超链接.html', 'r', encoding='utf-8')
html = f.read()
bs = BeautifulSoup(html, 'html.parser')    # bs代表整个文档
# print(bs)
# print(type(bs))

# # 拿到对应的第一个标签及其内容
# print(bs.title)    # 第一个title标签
# print(type(bs.title))

# # 提取标签里的内容
# print(bs.title.string)    # 如果是注释，输出内容会自动去掉注释符号
# print(type(bs.title.string))

# # 获得一个标签里的所有属性（字典，键值对）
# print(bs.a)
# print(bs.a.attrs)

# -------------------------------------------------------

# -----------------文档的搜索--------------------
import re  # 引入正则表达式模块

# (1)find_all('标签a')
# print(bs.find_all('a'))
# print(bs.find_all(re.compile('a')))    # 搜索含有‘a’字符的全部标签段

# (2)传入参数
# l_list = bs.find_all(id='haha')    # 查找所有包含id='haha'的标签段
# l_list = bs.find_all(class_=True)    # 查找所有包含class的标签段
# l_list = bs.find_all(href="###")    # 查找所有包含href="###"的标签段
# l_list = bs.find_all(text=['文字文本', '文字文本3haha'])    # 查找所有对应的内容
# l_list = bs.find_all(text=re.compile(r'\d'))    # 正则查找所有包含数字的内容
# l_list = bs.find_all('p', limit=3)    # 查找满足条件的前三条内容

# css选择器
# l_list = bs.select('.class1')    # 通过类名来查找
# l_list = bs.select('#haha')    # 通过id来查找
# l_list = bs.select("p[id='haha']")    # 通过标签&属性来查找
l_list = bs.select('head > title')    # 通过子标签（层层递进）来查找


print(l_list)